---
title: IP 地址
description: IP 地址的表示与分类、子网划分、超网汇聚
---

## IP 地址表示
* 机器中存放的 <font color='RedOrange'>IP 地址是 32 位的二进制代码，每隔 8 位插入一个空格</font>，可提高可读性，为了便于理解和设置，一般会采用<font color='RedOrange'>点分十进制</font>方法来表示：将 32 位二进制代码<font color='RedOrange'>每 8 位二进制转换为十进制，就变成了 4 个十进制数</font>，而后在每个十进制数中间插入 . ,如下所示，最终为 128.11.3.31：

   <img alt="点分十进制" src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/img/202409181515192.png" title="点分十进制"/>

* 因为每个十进制数都是由 8 个二进制数转换而来，因此<font color='RedOrange'>每个十进制数的取值范围都是 0~255 </font>。


## <font color='RedOrange'>分类 IP 地址</font>
IP 地址分为四段，每段八位，共 32 位二进制数组成，在逻辑上，这 32 位 IP 地址分为<font color='RedOrange'>网络号和主机号</font>，依据网络号位数的不同，可以将 IP 地址分为以下几类：

<img alt="分类 IP 地址" src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/img/202409181525264.png" title="分类 IP 地址"/>

* A 类网络号是 8 位，所以主机号是 24 位，因为主机号不能是全 0 或 全 1，所以可以表示 2^24-2 个主机。A 类地址网络号前缀是  0。

* B 类地址网络号是 16 位， 可以表示 2^16-2 个主机，网络号前缀是 10。

* C 类地址网络号是 24 位，可以表示 2^8-2 个主机，网络号前缀是 110。

A、B、C 类地址可以随便划分给企业或者私人，也称为单播地址。

D 类也称为组播地址，可以给一组人发。

E 类是保留地址，使用不到。

### 无分类编址
即不按照 A、B、C 类规则（包含的范围太广，浪费比较大），自动规定网络号，无分类编址格式为：IP地址/网络号，示例： 128.168.0.11/20 表示的 IP 地址为 128.168.0.11，其网络号占 20 位，因此主机号占 12 位，也可以划分子网。

无分类编址是按需分配的，也是最常用的，网络号自己规定。

无分类编址有助于子网划分和超网汇聚。

但国际上还是按照有分类编址区分地址块的。
### <font color='RedOrange'>特殊 IP 地址</font>

<font color='RedOrange'>公有地址：通过它直接访问因特网，是全网唯一的 IP 地址。</font>

<font color='RedOrange'>私有地址：属于非注册地址</font>，<font color='RedOrange'>专门为组织机构内部使用,不能直接访问因特网</font>，下表所示为私有地址范围。

<img alt="私有地址范围" src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/img/202409181614227.png" title="私有地址范围"/>

其它特殊地址如下表所示：

<img src="https://wkq-img.oss-cn-chengdu.aliyuncs.com/img/202409181615690.png" title="特殊地址"/>


## 子网划分
一般公司在申请网络时，会直接获得一个范围很大的网络，如一个 B 类地址，因为<font color='RedOrange'>主机数之间相差的太大了，不利于分配</font>，我们一般会采用<font color='RedOrange'>子网划分的方式来划分网络，即自定义网络号位数</font>，就能自定义主机号位数，就能<font color='RedOrange'>根据主机个数来划分出最适合的方案，不会造成资源的浪费</font>。

因此就有了子网的概念，一般的 IP 地址按标准划分为 A、B、C 类后，可以进行再一步的划分，将<font color='RedOrange'>主机号拿出几位作为子网号</font>，就可以划分出多个子网，此时 IP 地址组成为：<font color='RedOrange'>网络号 + 子网号 + 主机号</font>。

<font color='RedOrange'>网络号和子网号都为 1 ，主机号都为 0， 这样的地址称为子网掩码</font>。

要注意的是：<font color='RedOrange'>子网号可以为全 0 和 全 1，主机号不能为全 0 或 全 1 ，因此，主机数需要 -2，</font>而子网数不需要。

还可以<font color='RedOrange'>聚合网络为超网</font>，就是划分子网的逆过程，将<font color='RedOrange'>网络号取出几位作为主机号</font>，此时，这个网络内的主机数量就变多了，成为一个更大的网络。


属于同一个网段的网络号必然相等。


## IPv6
IPv4 共有地址已经全部分配完毕了，IPv6 主要是为了解决 IPv4 地址数不够用的情况而提出的设计方案，IPv6 具有以下特性：
* IPv6 地址长度为 128 位，地址空间增大了 2^96 倍。
* 灵活的 IP 报文头部格式，使用一系列固定格式的扩展头部取代了 IPv4 中可变长度的选项字段。IPv6 中选项部分的出现方式也有所变化，使路由器可以简单略过选项而不做任何处理。加快了报文处理速度；
* IPv6 简化了报文头部格斯，加快了报文转发，提高了吞吐量；
* 提高安全性，身份认证和隐私权是 IPv6 的关键特性。
* 支持更多的服务类型；
* 允许协议继续演变，增加新的功能，使之适应未来技术的发展。

* IPv4 和 IPv6 的过度期间，主要采用三种基本技术：
    *  双协议栈：主机同时运行 IPv4 和 IPv6 两套协议，一般来说 IPv4 和 IPv6 地址之间存在某种转换关系，如 IPv6 的低 32 位可以直接转换为 IPv4 地址，实现互相通信。
    *  隧道技术：这种机制用来在 IPv4 网络之上建立一条能够传输 IPv6 数据报的隧道，例如可以将 IPv6 数据报当作 IPv4 数据报的数据部分加以封装，只需要加一个 IPv4 的首部，就能在 IPv4 网络中传输 IPv6 报文。
    *  翻译技术：利用一台专门的翻译设备（如转换网关），在纯 IPv4 和 纯 IPv6 网络之间转换 IP 报头的地址，同时根据协议不同对分组做相应的语义翻译，从而使纯 IPv4 和纯 IPv6 站点之间能够透明通信。


